
#第一章：第一个python程序
#第一个注释
print("第一个程序：")
print("hello world")
#第二个注释


'''
多行注释
rgrdgd
'''

"""
第五注释
第六注释
"""

#入门基础：

#常量表达式：
print("常量表达式")
print(1 + 2 - 3)  # 0
print(1 + 2 * 3)  # 7
print(1 + 2 / 3)  # 1.6666666666666665

#变量和类型：
a=10#初始化
#读取变量的值：
print("a变量初始化")
print(a)
#修改变量的值
a=20#重新赋值
print("a变量重新赋值")
print(a)
#一个变量的值赋值给另外一个变量：
b=30
a=b
print("将b变量赋值给a变量")
print(a)#30
print(b)#30

#变量类型根据初始化自己确定：
c=30
d=0.5
f='xiaoxiaounicorn'
e=True
#type函数可以查看类型
print('查看类型：')
print(type(c)) #<class 'int'>
print(type(d)) #<class 'float'>
print(type(f)) #<class 'str'>
print(type(e)) #<class 'bool'>

#字符串可以是用 “单引号”、 “双引号”、 “三单引号” 或者 “三双引号” 引起来的一串字符序列，比如：
print('字符串可以是用 “单引号”、 “双引号”、 “三单引号” 或者 “三双引号” 引起来的一串字符序列:')
a1 = "xiaoxiaounicorn"
b1 = 'xiaoxiaounicorn'
c1 = """xiaoxiaounicorn"""
d1 = '''xiaoxiaounicorn'''
print(a1)  #xiaoxiaounicorn
print(b1)  # xiaoxiaounicorn
print(c1)  # xiaoxiaounicorn
print(d1)  # xiaoxiaounicorn

#此外，使用“三单引号”或“三双引号”可以将多行字符串赋值给变量。比如：
a2 = """
first line
second line
third line
"""
print(a2)

#len获取字符串长度
print('获取字符串长度：')
print(len(a2))

#可以使用+对两个字符串进行拼接，比如：
a3='xiaoxiaounicorn'
b3='666'
c3=a3+b3
print('可以使用+对两个字符串进行拼接:')
print(a3+b3)
print(c3)

#如果想要混合输出不同类型的变量，那么就需要对输出的字符串进行格式化。比如：
name='xiaoxiaounicorn'
age=20
print(f'{name} is {age} years old this year')
#使用f作为前缀的字符串，称为f-string。
#f-string里面可以使用{}来内嵌一个其他的变量或表达式。


#input:控制台读取用户输入的数据
#num=input("请输入一个整数：")
#print(f'你输入的整数是{num}')

#input的参数相当于一个“提示信息”，也可以没有。
#input的返回值就是用户输入的内容，是字符串类型。


num1=input("请输入第一个整数")
num2=input("请输入第二个整数")
int(num1)
int(num2)

#input返回的是字符串，结果为字符串拼接
print(f'{num1}+{num2}={num1+num2}')

#需要强转一下
num1=int(num1)
num2=int(num2)
print(f'{num1}+{num2}={num1+num2}')


#Python中的算术运算符，包括+、-、*、/、%、**（幂）、//（地板除）。
#  **可以求一个数的整数次幂，也可以求一个数的小数次幂
#  //是地板除，整数除以整数得到的结果还是整数（舍弃小数部分，向下取整）。


#关系运算符，包括<、<=、>、>=、==、!=。

#Python中使用==或!=即可判断两个字符串的内容是否相等。比如：
#判断两个字符串是否相等
string1="hello"
string2="hello"
print(string1==string2)

#判断两个浮点数是否相等
#不能直接用==判断：

k1=0.3+0.5
print(k1)#0.80000000000000004
k2=0.8
print(k2) #
print(k1==k2)


#正确做法：
#判定这两个浮点数的差值是否小于允许的误差范围。比如：
k3=0.3+0.5
print(k1)#0.80000000000000004
k4=0.8
print(k2) #
print(-0.000001 < (a - b) < 0.000001)

#Python中的逻辑运算符，包括and、or、not。
#and：并且。两侧操作数均为True，则最终结果为True，否则为False（一假则假）
#or：或者。两侧操作数均为False，则最终结果为False，否则为True（一真则真）
#not：逻辑取反。操作数本身为True，则返回False，本身为False，则返回True。

#在Python中，a < b and b < c等价于a < b < c，这个设定与其他编程语言都不相同。
#Python中也存在短路求值规则：对于and，如果左侧表达式为False，则整体一定为False，因此右侧表达式不再执行；对于or，如果左侧表达式为True，则整体一定为True，因此右侧表达式不再执行。

#Python中的赋值运算符，包括=、+=、-=、*=、/=、%=、**=、//=、&=、|=、^=、<<=、>>=。
#链式赋值是使用=同时对多个变量进行赋值的常见方式，比如：
L=M=10
print(L)
print(M)

#Python还支持多元赋值的方式对多个变量进行赋值。比如：
G, H = 10, 20
print(G)  # 10
print(H)  # 20

#多元赋值能帮我们解决一些特殊问题，比如完成两个变量的交换：
G, H = H, G
print(H)
print(G)

#对于复合赋值运算符+=来说，a += 1等价于a = a + 1，其他复合赋值运算符也是类似的道理。
#除了上述运算符外，Python中还有一些运算符，比如身份运算符（is、is not）、成员运算符（in、in not）、位运算符（&、|、^、~、<<、>>）等








